/**
 * storage二次封装
 * @author lian
 */

import config from "../config";
export default {
  setItem(key, val) {
    let storage = this.getStorage()
    // 使用[]而不是. 否则无法更改命名
    storage[key] = val
    // JSON.stringify 反序列化
    window.localStorage.setItem(config.namespace, JSON.stringify(storage));
  },
  getItem(key) {
    return this.getStorage()[key]
  },
  getStorage() {
    // JSON.parse()序列化字符串
    return JSON.parse(window.localStorage.getItem(config.namespace) || "{}");//默认值-对象
  },
  clearItem(key) {
    let storage = this.getStorage()
    delete storage[key]
    // 删除后需要重新写入
    window.localStorage.setItem(config.namespace, JSON.stringify(storage));

  },
  clearAll() {
    window.localStorage.clear();//原生方法
  },
}